<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>C++ Bitsets</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C++ Bitsets</a>
  </div>

  <div class="name-format">
    any
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bool any();
</pre>

  <p>The any() function returns true if any bit of the bitset is 1,
  otherwise, it returns false.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="count.html">count</a><br>
    <a href="none.html">none</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    Bitset Operators
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  !=, ==, &amp;=, ^=, |=, ~, &lt;&lt;=, &gt;&gt;=, []
</pre>

  <p>These operators all work with bitsets. They can be described as
  follows:</p>

  <ul>
    <li>!= returns true if the two bitsets are not equal.</li>

    <li>== returns true if the two bitsets are equal.</li>

    <li>&amp;= performs the AND operation on the two bitsets.</li>

    <li>^= performs the XOR operation on the two bitsets.</li>

    <li>|= performs the OR operation on the two bitsets.</li>

    <li>~ reverses the bitset (same as calling flip())</li>

    <li>&lt;&lt;= shifts the bitset to the left</li>

    <li>&gt;&gt;= shifts the bitset to the right</li>

    <li>[x] returns a reference to the xth bit in the bitset.</li>
  </ul>

  <p>For example, the following code creates a bitset and shifts it to
  the left 4 places:</p>
  <pre class="example-code">
 // create a bitset out of a number
 bitset&lt;8&gt; bs2( (long) 131 );
 cout &lt;&lt; &quot;bs2 is &quot; &lt;&lt; bs2 &lt;&lt; endl;
 // shift the bitset to the left by 4 digits
 bs2 &lt;&lt;= 4;
 cout &lt;&lt; &quot;now bs2 is &quot; &lt;&lt; bs2 &lt;&lt; endl;              
</pre>

  <p>When the above code is run, it displays:</p>
  <pre class="example-code">
 bs2 is 10000011
 now bs2 is 00110000            
</pre>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    Bitset Constructors
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bitset();
  bitset( unsigned long val );
</pre>

  <p>Bitsets can either be constructed with no arguments or with an
  unsigned long number val that will be converted into binary and
  inserted into the bitset. When creating bitsets, the number given in
  the place of the template determines how long the bitset is.</p>

  <p>For example, the following code creates two bitsets and displays
  them:</p>
  <pre class="example-code">
 // create a bitset that is 8 bits long
 bitset&lt;8&gt; bs;
 // display that bitset
 for( int i = (int) bs.size()-1; i &gt;= 0; i-- ) {
   cout &lt;&lt; bs[i] &lt;&lt; &quot; &quot;;
 }
 cout &lt;&lt; endl;
 // create a bitset out of a number
 bitset&lt;8&gt; bs2( (long) 131 );
 // display that bitset, too
 for( int i = (int) bs2.size()-1; i &gt;= 0; i-- ) {
   cout &lt;&lt; bs2[i] &lt;&lt; &quot; &quot;;
 }
 cout &lt;&lt; endl;            
</pre>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    count
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  <strong>size_type</strong> count();
</pre>

  <p>The function count() returns the number of bits that are set to 1
  in the bitset.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="any.html">any</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    flip
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bitset&lt;N&gt;&amp; flip();
  bitset&lt;N&gt;&amp; flip( size_t pos );
</pre>

  <p>The flip() function inverts all of the bits in the bitset, and
  returns the bitset. If <em>pos</em> is specified, only the bit at
  position <em>pos</em> is flipped.</p>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    none
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bool none();
</pre>

  <p>The none() function only returns true if none of the bits in the
  bitset are set to 1.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="any.html">any</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    reset
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bitset&lt;N&gt;&amp; reset();
  bitset&lt;N&gt;&amp; reset( size_t pos );
</pre>

  <p>The reset() function clears all of the bits in the bitset, and
  returns the bitset. If <em>pos</em> is specified, then only the bit
  at position <em>pos</em> is cleared.</p>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    set
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bitset&lt;N&gt;&amp; set();
  bitset&lt;N&gt;&amp; set( size_t pos, int val=1 );
</pre>

  <p>The set() function sets all of the bits in the bitset, and returns
  the bitset. If <em>pos</em> is specified, then only the bit at
  position <em>pos</em> is set.</p>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    size
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  size_t size();
</pre>

  <p>The size() function returns the number of bits that the bitset can
  hold.</p>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    test
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  bool test( size_t pos );
</pre>

  <p>The function test() returns the value of the bit at position
  <em>pos</em>.</p>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    to_string
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  string to_string();
</pre>

  <p>The to_string() function returns a string representation of the
  bitset.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="to_ulong.html">to_ulong</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>

  <div class="name-format">
    to_ulong
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  unsigned long to_ulong();
</pre>

  <p>The function to_ulong() returns the bitset, converted into an
  unsigned long integer.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="to_string.html">to_string</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
<hr>
</body></html>
